/*
* Copyright 2025 NXP
* NXP Proprietary. This software is owned or controlled by NXP and may only be used strictly in
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
* comply with and are bound by, such license terms.  If you do not agree to be bound by the applicable license
* terms, then you may not retain, install, activate or otherwise use the software.
*/

#ifndef GUI_GUIDER_H
#define GUI_GUIDER_H
#ifdef __cplusplus
extern "C" {
#endif

#include "lvgl.h"

typedef struct
{
  
	lv_obj_t *screen;
	bool screen_del;
	lv_obj_t *screen_digital_clock_1;
	lv_obj_t *screen_datetext_1;
	lv_obj_t *screen_screen_Sliding1;
	lv_obj_t *screen_screen_Sliding1_tile;
	lv_obj_t *screen_Bule;
	lv_obj_t *screen_Bule_label;
	lv_obj_t *screen_Set;
	lv_obj_t *screen_Set_label;
	lv_obj_t *screen_WIFI;
	lv_obj_t *screen_WIFI_label;
	lv_obj_t *screen_Weather;
	lv_obj_t *screen_Weather_label;
	lv_obj_t *screen_AI_tack;
	lv_obj_t *screen_AI_tack_label;
	lv_obj_t *screen_Move;
	lv_obj_t *screen_Move_label;
	lv_obj_t *screen_Code;
	lv_obj_t *screen_Code_label;
	lv_obj_t *screen_animimg_1;
	lv_obj_t *screen_Weater_Main;
	lv_obj_t *screen_Hello;
	lv_obj_t *screen_WIFI_Main;
	lv_obj_t *screen_Bule_Main;
	lv_obj_t *screen_Batteery_Main;
	lv_obj_t *screen_line_1;
	lv_obj_t *screen_arc_1;
	lv_obj_t *screen_set;
	bool screen_set_del;
	lv_obj_t *screen_set_BACK_Button;
	lv_obj_t *screen_set_BACK_Button_label;
	lv_obj_t *screen_set_Gyroscope_1;
	lv_obj_t *screen_set_Back_light;
	lv_obj_t *screen_set_Gyroscope;
	lv_obj_t *screen_set_Back_light_text;
	lv_obj_t *screen_set_Settings_1;
	lv_obj_t *screen_code;
	bool screen_code_del;
	lv_obj_t *screen_code_img_1;
	lv_obj_t *screen_weather;
	bool screen_weather_del;
	lv_obj_t *screen_weather_btn_1;
	lv_obj_t *screen_weather_btn_1_label;
	lv_obj_t *screen_weather_weather_1;
	lv_obj_t *screen_weather_location_name;
	lv_obj_t *screen_weather_temperature;
	lv_obj_t *screen_weather_weather;
	lv_obj_t *screen_weather_weather_data;
	lv_obj_t *screen_weather_temperature_data;
	lv_obj_t *screen_weather_location_data;
	lv_obj_t *screen_weather_weater_1;
	lv_obj_t *screen_weather_line_1;
	lv_obj_t *screen_wifi;
	bool screen_wifi_del;
	lv_obj_t *screen_wifi_BACK_Button;
	lv_obj_t *screen_wifi_BACK_Button_label;
	lv_obj_t *screen_wifi_SmartConfig_Button;
	lv_obj_t *screen_wifi_SmartConfig_Button_label;
	lv_obj_t *screen_wifi_WIFI_1;
	lv_obj_t *screen_wifi_AP_STA_coexistence;
	lv_obj_t *screen_wifi_AP_STA_coexistence_label;
	lv_obj_t *screen_wifi_STA_reconnection;
	lv_obj_t *screen_wifi_STA_reconnection_label;
	lv_obj_t *screen_bule;
	bool screen_bule_del;
	lv_obj_t *screen_bule_BACK_Button;
	lv_obj_t *screen_bule_BACK_Button_label;
	lv_obj_t *screen_bule_Blue_1;
	lv_obj_t *screen_bule_BLE_1;
	lv_obj_t *screen_bule_BLE_1_label;
	lv_obj_t *screen_bule_WIFI_2;
	lv_obj_t *screen_bule_WIFI_2_label;
	lv_obj_t *screen_bule_line_1;
	lv_obj_t *screen_ai_tack;
	bool screen_ai_tack_del;
	lv_obj_t *screen_ai_tack_btn_1;
	lv_obj_t *screen_ai_tack_btn_1_label;
	lv_obj_t *screen_move;
	bool screen_move_del;
	lv_obj_t *screen_move_btn_1;
	lv_obj_t *screen_move_btn_1_label;
}lv_ui;

typedef void (*ui_setup_scr_t)(lv_ui * ui);

void ui_init_style(lv_style_t * style);

void ui_load_scr_animation(lv_ui *ui, lv_obj_t ** new_scr, bool new_scr_del, bool * old_scr_del, ui_setup_scr_t setup_scr,
                           lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool is_clean, bool auto_del);

void ui_animation(void * var, int32_t duration, int32_t delay, int32_t start_value, int32_t end_value, lv_anim_path_cb_t path_cb,
                       uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
                       lv_anim_exec_xcb_t exec_cb, lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);


void init_scr_del_flag(lv_ui *ui);

void setup_ui(lv_ui *ui);


extern lv_ui guider_ui;


void setup_scr_screen(lv_ui *ui);
void setup_scr_screen_set(lv_ui *ui);
void setup_scr_screen_code(lv_ui *ui);
void setup_scr_screen_weather(lv_ui *ui);
void setup_scr_screen_wifi(lv_ui *ui);
void setup_scr_screen_bule(lv_ui *ui);
void setup_scr_screen_ai_tack(lv_ui *ui);
void setup_scr_screen_move(lv_ui *ui);
LV_IMG_DECLARE(_BLUE_64x64);
LV_IMG_DECLARE(_BLUE_64x64);
LV_IMG_DECLARE(_Set_64x64);
LV_IMG_DECLARE(_Set_64x64);
LV_IMG_DECLARE(_wifi_64x64);
LV_IMG_DECLARE(_wifi_64x64);
LV_IMG_DECLARE(_weather_71x71);
LV_IMG_DECLARE(_weather_71x71);
LV_IMG_DECLARE(_AI2_64x64);
LV_IMG_DECLARE(_AI2_64x64);
LV_IMG_DECLARE(_movement_64x64);
LV_IMG_DECLARE(_movement_64x64);
LV_IMG_DECLARE(_code_64x64);
LV_IMG_DECLARE(_code_64x64);
#include "extra/widgets/animimg/lv_animimg.h"
LV_IMG_DECLARE(screen_animimg_11);
LV_IMG_DECLARE(screen_animimg_12);
LV_IMG_DECLARE(screen_animimg_13);
LV_IMG_DECLARE(screen_animimg_14);
LV_IMG_DECLARE(screen_animimg_15);
LV_IMG_DECLARE(screen_animimg_16);
LV_IMG_DECLARE(screen_animimg_17);
LV_IMG_DECLARE(screen_animimg_18);
LV_IMG_DECLARE(screen_animimg_19);
LV_IMG_DECLARE(screen_animimg_110);
LV_IMG_DECLARE(screen_animimg_111);
LV_IMG_DECLARE(screen_animimg_112);
LV_IMG_DECLARE(screen_animimg_113);
LV_IMG_DECLARE(screen_animimg_114);
LV_IMG_DECLARE(screen_animimg_115);
LV_IMG_DECLARE(screen_animimg_116);
LV_IMG_DECLARE(screen_animimg_117);
LV_IMG_DECLARE(screen_animimg_118);
LV_IMG_DECLARE(screen_animimg_119);
LV_IMG_DECLARE(screen_animimg_120);
LV_IMG_DECLARE(screen_animimg_121);
LV_IMG_DECLARE(screen_animimg_122);
LV_IMG_DECLARE(screen_animimg_123);
LV_IMG_DECLARE(screen_animimg_124);
LV_IMG_DECLARE(screen_animimg_125);
LV_IMG_DECLARE(screen_animimg_126);
LV_IMG_DECLARE(screen_animimg_127);
LV_IMG_DECLARE(screen_animimg_128);
LV_IMG_DECLARE(screen_animimg_129);
LV_IMG_DECLARE(screen_animimg_130);
LV_IMG_DECLARE(screen_animimg_131);
LV_IMG_DECLARE(_weather_40x40);
LV_IMG_DECLARE(_wifi_28x23);
LV_IMG_DECLARE(_BLUE_28x25);
LV_IMG_DECLARE(_battery_27x27);
LV_IMG_DECLARE(_xiao2_jpeg_240x280);
LV_IMG_DECLARE(_weather2_64x64);
LV_IMG_DECLARE(_WIFI_1_64x62);
LV_IMG_DECLARE(_BLUE_1_64x64);

LV_FONT_DECLARE(lv_font_Acme_Regular_42)
LV_FONT_DECLARE(lv_font_montserratMedium_16)
LV_FONT_DECLARE(lv_font_Acme_Regular_22)
LV_FONT_DECLARE(lv_font_montserratMedium_12)
LV_FONT_DECLARE(lv_font_Acme_Regular_17)
LV_FONT_DECLARE(lv_font_Acme_Regular_25)
LV_FONT_DECLARE(lv_font_SourceHanSansCN_Medium_17)


#ifdef __cplusplus
}
#endif
#endif
